﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;
using TES.EnteRegulador;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace TES.WEB.EnteRegulador.Clases
{
    ///// <summary>
    ///// Clase para la visualizacion de las redes en MinComWeb
    ///// </summary>
    //public class MergeRedes : ICloneable
    //{
    //    #region CAMPOS

    //    /// <summary>
    //    /// Regional de la red
    //    /// </summary>
    //    private string _regional;

    //    /// <summary>
    //    /// Estado del enlace principal
    //    /// </summary>
    //    private string _estadoEnlace;
    //    /// <summary>
    //    /// Estado de la legalización asociada a la red
    //    /// </summary>
    //    private string _estadoLegalizacion;
    //    /// <summary>
    //    /// Indica si esta completa la información
    //    /// </summary>
    //    private bool _completo;
    //    /// <summary>
    //    /// Merge enlace
    //    /// </summary>
    //    private MergeEnlace _mergeEnlaceAgregado;
    //    /// <summary>
    //    /// MergeRed 
    //    /// </summary>
    //    private MergeRed _mergeRedAgregado;
    //    /// <summary>
    //    /// Lista de los merge enlaces
    //    /// </summary>
    //    private List<MergeEnlace> _listaMergesEnlaces;
    //    /// <summary>
    //    /// Indica si esta seleccionado o no
    //    /// </summary>
    //    private bool? _seleccionado;
    //    #endregion



    //    #region PROPIEDADES

    //    #region PROPIEDADES BINDING GRID ENLACES
    //    /// <summary>
    //    /// Enlace principal de la red
    //    /// </summary>
    //    public string Enlace
    //    {
    //        get
    //        {
    //            return _mergeEnlaceAgregado.CopiaAgregada.Estacion1 + " - " +
    //                 _mergeEnlaceAgregado.CopiaAgregada.Estacion2;
    //        }
    //    }

    //    /// <summary>
    //    /// Numero de la red
    //    /// </summary>
    //    public int? NumeroRed
    //    {
    //        get
    //        {
    //            if (_mergeEnlaceAgregado.EnlaceMinisterio != null)
    //            {
    //                return _mergeEnlaceAgregado.EnlaceMinisterio.NumeroRed;
    //            }
    //            else if (_mergeEnlaceAgregado.CambioEnlace != null)
    //            {
    //                return _mergeEnlaceAgregado.CambioEnlace.NumeroRed;
    //            }
    //            else
    //            {
    //                return null;
    //            }
    //        }
    //    }

    //    /// <summary>
    //    /// Indica si el enlace ya esta implementado
    //    /// </summary>
    //    public string Implementado
    //    { get { return _mergeEnlaceAgregado.EstaImplementado; } }


    //    /// <summary>
    //    /// Regional a la que pertenece la red
    //    /// </summary>
    //    public string Regional
    //    {
    //        get { return _regional; }
    //        set { _regional = value; }
    //    }


    //    /// <summary>
    //    /// Estado del enlace principal
    //    /// </summary>
    //    public string EstadoEnlace
    //    {
    //        get { return _estadoEnlace; }
    //        set { _estadoEnlace = value; }
    //    }
    //    /// <summary>
    //    /// Estado de la legalizacion asociada a la red
    //    /// </summary>
    //    public string EstadoLegalizacion
    //    {
    //        get { return _estadoLegalizacion; }
    //        set { _estadoLegalizacion = value; }
    //    }



    //    /// <summary>
    //    /// Indica si los datos estan Completos
    //    /// </summary>
    //    public string DatosCompletos
    //    {
    //        get { return _mergeRedAgregado.TieneDatosValidos() ? "SI" : "NO"; }
    //    }

    //    #endregion


    //    #region PROPIEDADES MERGEVISUAL
    //    /// <summary>
    //    /// MergeEnlace de la red
    //    /// </summary>
    //    public MergeEnlace MergeEnlace
    //    {
    //        get { return _mergeEnlaceAgregado; }
    //    }

    //    /// <summary>
    //    /// Merge Red
    //    /// </summary>
    //    public MergeRed MergeRed
    //    {
    //        get { return _mergeRedAgregado; }
    //    }

    //    /// <summary>
    //    /// Listado de los MergeEnlaces
    //    /// </summary>
    //    public ReadOnlyCollection<MergeEnlace> ListaMergesEnlaces
    //    {
    //        get { return _listaMergesEnlaces.AsReadOnly(); }
    //    }

    //    /// <summary>
    //    /// Revisa si tiene version en el ministerio
    //    /// </summary>
    //    public bool TieneVersionMinisterio
    //    {
    //        get
    //        {
    //            return _mergeEnlaceAgregado.Estado == EstadoEnlace.Actualizado ||
    //                 _mergeEnlaceAgregado.Estado == EstadoEnlace.Eliminado ||
    //                 _mergeEnlaceAgregado.Estado == EstadoEnlace.Modificado;
    //        }
    //    }

    //    /// <summary>
    //    /// Indica si esta  seleccionado o no
    //    /// </summary>
    //    public bool? Seleccionado
    //    {
    //        get { return _seleccionado; }
    //        set
    //        {
    //            // No se permite asignar null, solo es null cuando no se puede cambiar la propiedad
    //            if (value == null) _seleccionado = !_seleccionado;
    //            else _seleccionado = value;
    //        }
    //    }
    //    /// <summary>
    //    /// Indica si este item se puede seleccionar o no dependiendo de su estado
    //    /// </summary>
    //    public bool PermitirSeleccionar
    //    {
    //        get
    //        {
    //            foreach (MergeEnlace merge in _listaMergesEnlaces)
    //            {
    //                if (!merge.TieneDatosValidos())
    //                {
    //                    return false;
    //                }
    //                if (merge.EstadoLegalizacionEnlace == EstadoLegalizacionEnlace.Creada ||
    //                    merge.EstadoLegalizacionEnlace == EstadoLegalizacionEnlace.Radicada)
    //                {
    //                    return false;
    //                }
    //            }
    //            bool actualizado = true;
    //            foreach (MergeEnlace merge in _listaMergesEnlaces)
    //            {
    //                actualizado &= merge.Estado == EstadoEnlace.Actualizado;
    //            }
    //            if (actualizado) return false;
    //            return true;
    //        }
    //    }

    //    /// <summary>
    //    /// Indica el color con el que se debe mostrar esta fila cuando NO está seleccionada
    //    /// </summary>
    //    public Color BackColorFila
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.GetColorFila(ColoresMergeVisual.ColoresBackColor, _mergeEnlaceAgregado.EstadoLegalizacionEnlace,
    //            _mergeRedAgregado.TieneDatosValidos(), _mergeRedAgregado.Estado);
    //        }
    //    }

    //    /// <summary>
    //    /// Indica el color con el que se debe mostrar esta fila cuando está seleccionada
    //    /// </summary>
    //    public Color SelectionBackColorFila
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.GetColorFila(ColoresMergeVisual.ColoresSelectionBackColor, _mergeEnlaceAgregado.EstadoLegalizacionEnlace,
    //      _mergeRedAgregado.TieneDatosValidos(), _mergeRedAgregado.Estado);
    //        }
    //    }

    //    #endregion

    //    #region Propiedades agregadas


    //    public string Estado { get { return _mergeRedAgregado.Estado.ToString(); } }

    //    public EstadoLegalizacionEnlace EstadoLegalizacionEnlace
    //    {
    //        get { return _mergeEnlaceAgregado.EstadoLegalizacionEnlace; }
    //    }

    //    public string DescEstadoLegalizacionEnlace
    //    {
    //        get { return _mergeEnlaceAgregado.EstadoLegalizacionEnlace.ToString(); }
    //    }

    //    public Guid Id { get { return _mergeEnlaceAgregado.CopiaAgregada.Id; } }

    //    public string Direccion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.Direccion1; } }

    //    public string Direccion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.Direccion2; } }

    //    public string MunicipioEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.MunicipioEstacion1; } }

    //    public string MunicipioEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.MunicipioEstacion2; } }

    //    public string DepartamentoEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.DepartamentoEstacion1; } }

    //    public string DepartamentoEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.DepartamentoEstacion2; } }

    //    public string Banda { get { return _mergeEnlaceAgregado.CopiaAgregada.Banda; } }

    //    public string TipoModulacion { get { return _mergeEnlaceAgregado.CopiaAgregada.TipoModulacion; } }

    //    public string Estacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.Estacion1; } }

    //    public string Estacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.Estacion2; } }

    //    public string DescripcionCapacidad
    //    {
    //        get
    //        {
    //            return ConversionesEsquemasSenalizacion.StringCuartos2EUnos(
    //                 _mergeEnlaceAgregado.CopiaAgregada.CapacidadEnlaceCuartosSlot);
    //        }
    //    }

    //    public double? AnchoDeBandaEnlace { get { return _mergeEnlaceAgregado.CopiaAgregada.AnchoDeBandaEnlace; } }

    //    public double XEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.XEstacion1; } }

    //    public double XEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.XEstacion2; } }

    //    public double YEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.YEstacion1; } }

    //    public double YEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.YEstacion2; } }

    //    public double ZEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.ZEstacion1; } }

    //    public double ZEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.ZEstacion2; } }

    //    public int CodigoSistemaPoscEstacion1 { get { return _mergeEnlaceAgregado.CopiaAgregada.CodigoSistemaPoscEstacion1; } }

    //    public int CodigoSistemaPoscEstacion2 { get { return _mergeEnlaceAgregado.CopiaAgregada.CodigoSistemaPoscEstacion2; } }

    //    public string NombreCodigoExpediente
    //    {
    //        get
    //        {
    //            if (_mergeEnlaceAgregado.EnlaceMinisterio != null)
    //            {
    //                return _mergeEnlaceAgregado.EnlaceMinisterio.NombreCodigoExpediente;
    //            }
    //            else if (_mergeEnlaceAgregado.CambioEnlace != null)
    //            {
    //                return _mergeEnlaceAgregado.CambioEnlace.NombreCodigoExpedienteLegalizacion;
    //            }
    //            else
    //            {
    //                return null;
    //            }
    //        }
    //    }

    //    public string CodigoExpediente
    //    {
    //        get
    //        {
    //            if (_mergeEnlaceAgregado.EnlaceMinisterio != null)
    //            {
    //                return _mergeEnlaceAgregado.EnlaceMinisterio.CodigoExpediente;
    //            }
    //            else if (_mergeEnlaceAgregado.CambioEnlace != null)
    //            {
    //                return _mergeEnlaceAgregado.CambioEnlace.CodigoExpedienteLegalizacion;
    //            }
    //            else
    //            {
    //                return null;
    //            }
    //        }
    //    }



    //    //public BindingList<CopiaDiversidad> ListaDiversidades { get { return new BindingList<CopiaDiversidad>(_mergeEnlaceAgregado.ListaDiversidades); } }

    //    //   public BindingList<MergeDiversidad> ListaFrecuenciasDiversidadRed1 { get { return new BindingList<MergeDiversidad>(_mergeRedAgregado.MergeFrecuenciasRadio1); } }
    //    //    public BindingList<MergeDiversidad> ListaFrecuenciasDiversidadRed2 { get { return new BindingList<MergeDiversidad>(_mergeRedAgregado.MergeFrecuenciasRadio2); } }

    //    public Color ColorDiversidadesFrecuencia
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.DiversidadFrecuenciasValido &&
    //                  _mergeEnlaceAgregado.CorrespondenciaDiversidadValido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioDiversidadesFrecuenciaRadio);
    //        }
    //    }


    //    public Color ColorDireccion1
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.Direccion1Valido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioDireccion1);
    //        }
    //    }

    //    public Color ColorDireccion2
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.Direccion2Valido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioDireccion2);
    //        }
    //    }

    //    public Color ColorIdBanda
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.IdBandaValido &&
    //                 (_mergeEnlaceAgregado.CorrespondenciaDiversidadValido ||
    //                 _mergeEnlaceAgregado.CorrespondenciaDiversidadValido),
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioIdBanda);
    //        }
    //    }

    //    public Color ColorIdTipoModulacionEnlace
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.IdTipoModulacionEnlaceValido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioIdTipoModulacionEnlace);
    //        }
    //    }

    //    public Color ColorAnchoDeBandaEnlace
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.AnchoDeBandaEnlaceValido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioAnchoDeBandaEnlace);
    //        }
    //    }

    //    public Color ColorCapacidad
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.CapacidadEnlaceCuartosSlotValido,
    //                 _mergeEnlaceAgregado.DiferenciasFotoVsMinisterio.CambioCapacidadEnlaceCuartosSlot);
    //        }
    //    }

    //    public Color ColorMunicipioEstacion1
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.MunicipioEstacion1Valido);
    //        }
    //    }

    //    public Color ColorMunicipioEstacion2
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.MunicipioEstacion2Valido);
    //        }
    //    }

    //    public Color ColorDepartamentoEstacion1
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.DepartamentoEstacion1Valido);
    //        }
    //    }

    //    public Color ColorDepartamentoEstacion2
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.DepartamentoEstacion2Valido);
    //        }
    //    }

    //    public Color ColorCoordenadaEstacion1
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.CoordenadaEstacion1Valida);
    //        }
    //    }

    //    public Color ColorCoordenadaEstacion2
    //    {
    //        get
    //        {
    //            return ColoresMergeVisual.CalcularColorCajaTexto(_mergeEnlaceAgregado.CoordenadaEstacion2Valida);
    //        }
    //    }

    //    #endregion Propiedades agregadas


    //    #endregion

    //    #region CONSTRUCTOR

    //    /// <summary>
    //    /// Constructor por defecto del merge de redes
    //    /// </summary>
    //    public MergeRedes()
    //    {

    //    }

    //    /// <summary>
    //    /// Constructor por parametros del merge redes
    //    /// </summary>
    //    /// <param name="numerored"></param>
    //    /// <param name="regional"></param>
    //    /// <param name="estadoenlace"></param>
    //    /// <param name="estadolegalizacion"></param>
    //    /// <param name="completo"></param>
    //    public MergeRedes(int numerored, string regional, string estadoenlace, string estadolegalizacion, bool completo)
    //    {
    //        this._numeroRed = numerored;
    //        this._regional = regional;
    //        this._estadoEnlace = estadoenlace;
    //        this._estadoLegalizacion = estadolegalizacion;
    //        this._completo = completo;
    //    }

    //    /// <summary>
    //    /// Constructor 
    //    /// </summary>
    //    /// <param name="mergeRed">Objeto Merge Red devuelto de BD </param>
    //    /// <param name="seleccionado">Indica si esta seleccionado</param>
    //    public MergeRedes(MergeRed mergeRed, bool seleccionado)
    //    {
    //        _listaMergesEnlaces = new List<MergeEnlace>(mergeRed.ListaMerges);
    //        _mergeRedAgregado = mergeRed;
    //        List<TesGestion.Formas.Ministerio.EstadoLegalizacionEnlace> estados =
    //             new List<EstadoLegalizacionEnlace>();
    //        foreach (MergeEnlace m in _listaMergesEnlaces)
    //        {
    //            if (!estados.Contains(m.EstadoLegalizacionEnlace))
    //                estados.Add(m.EstadoLegalizacionEnlace);
    //        }

    //        if (estados.Count > 1)
    //        {
    //            //  Console.WriteLine("-------------Mas de un estado-----------------");
    //            foreach (MergeEnlace m in _listaMergesEnlaces)
    //            {
    //                //    if (m.CopiaAgregada != null)
    //                //        Console.WriteLine("- COPIA" + m.CopiaAgregada.Estacion1 + " - " + m.CopiaAgregada.Estacion2 +
    //                //            "- ESTADO LEGALIZACION " + m.EstadoLegalizacionEnlace.ToString());

    //                //  if (m.EnlaceMinisterio != null)
    //                //    Console.WriteLine("- MINISTERIO" + m.EnlaceMinisterio.Estacion1 + " - " + m.EnlaceMinisterio.Estacion2);

    //                //if (m.CambioEnlace != null)
    //                //  {
    //                string idRed = m.CambioEnlace.CopiaGuidRed.HasValue ?
    //                     m.CambioEnlace.CopiaGuidRed.Value.ToString() : Guid.Empty.ToString();

    //                //Console.WriteLine("- CAMBIO " + m.CambioEnlace.Estacion1 + " - " + m.CambioEnlace.Estacion2 +
    //                //     "- COPIAGUIDRED " + idRed +
    //                //     "- IDENLACE " + m.CambioEnlace.CopiaGuidEnlace +
    //                //     "- NUMERORED " + m.CambioEnlace.NumeroRed.ToString() +
    //                //     "- ESTADO " + m.Estado.ToString() +
    //                //     "- ESTADO LEGALIZACION " + m.EstadoLegalizacionEnlace.ToString() +
    //                //     "- Regional " + m.CambioEnlace.NombreCodigoExpedienteLegalizacion);
    //                // }
    //            }
    //        }

    //        _mergeEnlaceAgregado = GetMergeEnlaceAgregado();//_listaMergesEnlaces[0];
    //        if (!PermitirSeleccionar) _seleccionado = (bool?)null;
    //        else _seleccionado = seleccionado;
    //        CrearListaMergesBindingControles(mergeRed.ListaMerges);
    //    }






    //    #endregion

    //    #region METODOS



    //    public static List<MockMerge> GetDatos(string sortExpression, string direction, string filtrarRed, string filtrarRegional, string filtrarEnlace, string filtrarEstadoLegalizacion, string filtrarEstadoEnlace, string filtrarCompleto, string filtrarImplementado)
    //    {


    //        List<MockMerge> lista = new List<MockMerge>();

    //        MockMerge enlace = new MockMerge(1, "Norte", "Alguno", "Parece que funciona", "No se va a legalizar", true, false);
    //        MockMerge enlace1 = new MockMerge(2, "Costa", "Otro", "No funciona", "No se va a legalizar", false, true);
    //        MockMerge enlace2 = new MockMerge(3, "Norte", "Alguno", "Parece que funciona", "No se va a legalizar", true, true);
    //        MockMerge enlace3 = new MockMerge(4, "Costa", "Otro", "No funciona", "No se va a legalizar", false, true);
    //        MockMerge enlace4 = new MockMerge(3, "Costa", "Otro", "No funciona", "No se va a legalizar", true, false);
    //        lista.Add(enlace2);
    //        lista.Add(enlace1);
    //        lista.Add(enlace3);
    //        lista.Add(enlace);
    //        lista.Add(enlace4);

    //        if (filtrarRed != null || filtrarRegional != null || filtrarEnlace != null || filtrarEstadoEnlace != null || filtrarEstadoLegalizacion != null || filtrarCompleto != null || filtrarImplementado != null)
    //        {
    //            if (sortExpression == "NINGUNO")
    //            {
    //                return FiltrarLista(filtrarRed, filtrarRegional, filtrarEnlace, filtrarEstadoEnlace, filtrarEstadoLegalizacion, filtrarCompleto, filtrarImplementado, lista);
    //            }
    //            else
    //            {
    //                return SortGridView(sortExpression, direction, FiltrarLista(filtrarRed, filtrarRegional, filtrarEnlace, filtrarEstadoEnlace, filtrarEstadoLegalizacion, filtrarCompleto, filtrarImplementado, lista));
    //            }
    //        }

    //        if (sortExpression == "NINGUNO")
    //            return lista;
    //        else
    //            return SortGridView(sortExpression, direction, lista);

    //    }

    //    private static List<MockMerge> SortGridView(string sortExpression, string direction, List<MockMerge> lista)
    //    {
    //        if (sortExpression != null && sortExpression != string.Empty)
    //        {
    //            ComparadorMockMerge comparador = new ComparadorMockMerge(sortExpression);
    //            lista.Sort(comparador);

    //        }

    //        //Now that we have sorted check to see if the sort direction is desc
    //        if (direction != null && direction == "DESC")
    //        {
    //            lista.Reverse();
    //        }


    //        return lista;
    //    }

    //    private static List<MockMerge> FiltrarLista(string filtrarRed, string filtrarRegional, string filtrarEnlace, string filtrarEstadoEnlace, string filtrarEstadoLegalizacion, string filtrarCompleto, string filtrarImplementado, List<MockMerge> lista)
    //    {

    //        List<MockMerge> lista2 = new List<MockMerge>();
    //        lista2 = lista;

    //        if (filtrarRed != null)
    //        {
    //            var response = from s in lista2
    //                           where s._numeroRed == int.Parse(filtrarRed)
    //                           select s;
    //            lista2 = response.Cast<MockMerge>().ToList();
    //        }

    //        if (filtrarRegional != null)
    //        {
    //            var response1 = from s in lista2
    //                            where s._regional.ToLower() == filtrarRegional.ToLower()
    //                            select s;
    //            lista2 = response1.Cast<MockMerge>().ToList();
    //        }
    //        if (filtrarEnlace != null)
    //        {
    //            var response2 = from s in lista2
    //                            where s._enlace.ToLower() == filtrarEnlace.ToLower()
    //                            select s;
    //            lista2 = response2.Cast<MockMerge>().ToList();
    //        }
    //        if (filtrarEstadoEnlace != null)
    //        {
    //            var response4 = from s in lista2
    //                            where s._estadoEnlace.ToLower() == filtrarEstadoEnlace.ToLower()
    //                            select s;
    //            lista2 = response4.Cast<MockMerge>().ToList();
    //        }
    //        if (filtrarEstadoLegalizacion != null)
    //        {
    //            var response3 = from s in lista2
    //                            where s._estadoLegalizacion.ToLower() == filtrarEstadoLegalizacion.ToLower()
    //                            select s;
    //            lista2 = response3.Cast<MockMerge>().ToList();
    //        }
    //        if (filtrarCompleto != null)
    //        {
    //            Boolean dato = true;
    //            if (filtrarCompleto == "No")
    //                dato = false;

    //            var response3 = from s in lista2
    //                            where s._completo == dato
    //                            select s;
    //            lista2 = response3.Cast<MockMerge>().ToList();
    //        }
    //        if (filtrarImplementado != null)
    //        {
    //            Boolean dato = true;
    //            if (filtrarImplementado == "No")
    //                dato = false;

    //            var response3 = from s in lista2
    //                            where s._implementado == dato
    //                            select s;
    //            lista2 = response3.Cast<MockMerge>().ToList();
    //        }


    //        return lista2;
    //    }

    //    #endregion





    //    /// <summary>
    //    /// Este metodo se encaga de validar que a partir de la lista de enlaces que pueda tener una red, no existan 
    //    /// redes con más de un numero de red.
    //    /// </summary>
    //    private void AssertionNumerosRed()
    //    {
    //        List<int> numerosRed = new List<int>();
    //        foreach (MergeEnlace mergeActual in _listaMergesEnlaces)
    //        {
    //            if (mergeActual.EnlaceMinisterio != null && !numerosRed.Contains(mergeActual.EnlaceMinisterio.NumeroRed))
    //            {
    //                numerosRed.Add(mergeActual.EnlaceMinisterio.NumeroRed);
    //            }
    //        }
    //        if (numerosRed.Count > 1)
    //        {
    //            string texto = string.Empty;
    //            foreach (int num in numerosRed)
    //            {
    //                texto += " " + num.ToString();
    //            }
    //            Console.WriteLine(texto);
    //        }
    //    }


    //    /// <summary>
    //    /// Se encarga de obtener un unico enlace de la red, que se mostrará como red principal, 
    //    /// si la red tiene mas de dos radios se busca el que tenga numero de red, si ninguno tiene
    //    /// se devuelve el primer ítem. Por defecto es el primer ítem de la lista
    //    /// </summary>
    //    /// <returns></returns>
    //    private MergeEnlace GetMergeEnlaceAgregado()
    //    {
    //        AssertionNumerosRed();
    //        MergeEnlace mergePrincipalRed = _listaMergesEnlaces[0];
    //        if (mergePrincipalRed.EnlaceMinisterio == null)
    //        {
    //            foreach (MergeEnlace mergeActual in _listaMergesEnlaces)
    //            {
    //                if (mergeActual.EnlaceMinisterio != null)
    //                {
    //                    return mergeActual;
    //                }
    //            }
    //        }
    //        return mergePrincipalRed;
    //    }

    //    //private BindingList<MergeRadioVisual> _listaEnlazadaMergeRadios;

    //    //public BindingList<MergeRadioVisual> ListaEnlazadaMergeRadios
    //    //{
    //    //    get { return _listaEnlazadaMergeRadios; }
    //    //}

    //    //private BindingList<MergeAntenaVisual> _listaEnlazadaMergeAntenas1;

    //    //public BindingList<MergeAntenaVisual> ListaEnlazadaMergeAntenas1
    //    //{
    //    //    get { return _listaEnlazadaMergeAntenas1; }
    //    //}

    //    //private BindingList<MergeAntenaVisual> _listaEnlazadaMergeAntenas2;

    //    //public BindingList<MergeAntenaVisual> ListaEnlazadaMergeAntenas2
    //    //{
    //    //    get { return _listaEnlazadaMergeAntenas2; }
    //    //}


    //    //private void CrearListaMergesBindingControles(ReadOnlyCollection<MergeEnlace> merges)
    //    //{
    //    //    _listaEnlazadaMergeAntenas1 = new BindingList<MergeAntenaVisual>();
    //    //    _listaEnlazadaMergeAntenas2 = new BindingList<MergeAntenaVisual>();
    //    //    _listaEnlazadaMergeRadios = new BindingList<MergeRadioVisual>();

    //    //    foreach (CopiaAntena copia in ListaGrupoAntenas1)
    //    //    {
    //    //        _listaEnlazadaMergeAntenas1.Add(new MergeAntenaVisual(merges[0], false, copia, true));
    //    //    }

    //    //    foreach (CopiaAntena copia in ListaGrupoAntenas2)
    //    //    {
    //    //        _listaEnlazadaMergeAntenas2.Add(new MergeAntenaVisual(merges[0], false, copia, true));
    //    //    }

    //    //    foreach (MergeEnlace mergeEnlace in merges)
    //    //    {
    //    //        _listaEnlazadaMergeRadios.Add(new MergeRadioVisual(mergeEnlace, false));
    //    //    }
    //    //}

    //    public void CambiarTipoCopia(TesGestion.AccesoDatos.AccesoDatosEnum.TipoCopia tipoCopia)
    //    {
    //        _mergeRedAgregado.CambiarTipoCopia(tipoCopia);

    //    }




    //    // public BindingList<CopiaAntena> ListaGrupoAntenas1 { get { return new BindingList<CopiaAntena>(_mergeRedAgregado.ListaGrupoAntenas1); } }

    //    //   public BindingList<CopiaAntena> ListaGrupoAntenas2 { get { return new BindingList<CopiaAntena>(_mergeRedAgregado.ListaGrupoAntenas2); } }

    //    #region ICloneable Members

    //    public object Clone()
    //    {
    //        return new MergeRedes((MergeRed)_mergeRedAgregado.Clone(), false);
    //    }

    //    #endregion
    //}

   
}
